/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.ajz.dao;

import java.util.List;

import org.aspectj.weaver.loadtime.Aj;

import com.thinkgem.jeesite.common.persistence.TreeDao;
import com.thinkgem.jeesite.common.persistence.annotation.MyBatisDao;
import com.thinkgem.jeesite.modules.ajz.entity.AjzBaseinfo;
import com.thinkgem.jeesite.modules.sys.entity.Dict;
import com.thinkgem.jeesite.modules.sys.entity.Office;
import com.thinkgem.jeesite.modules.sys.entity.User;

/**
 * 门店区域划分表DAO接口
 * @author whh
 * @version 2017-09-14
 */
@MyBatisDao
public interface AjzBaseinfoDao extends TreeDao<AjzBaseinfo> {
	
	/**
	 * 通过id获取user
	 * @param id
	 * @return
	 */
	public User getRealSysUserById(String id);
	/**
	 * 获取同一片区域内另一个同名office
	 * @param str
	 * @return
	 */
	public Office getAnoterOffice(Office office);
	/**
	 * 通过手机号获取ajzbaseinfo
	 * @param str
	 * @return
	 */
	public AjzBaseinfo getRealAjzBaseinfoByTelephone(String str);
	/**
	 * 通过officeId获取ajzbaseinfo
	 * @param str
	 * @return
	 */
	public AjzBaseinfo getAjzBaseinfoByOfficeId(String str);
	/**
	 * 通过手机号获取user
	 * @param str
	 * @return
	 */
	public User getRealSysUserByTelephone(String str);
	/**
	 * 获取selectList
	 * @param str
	 * @return
	 */
	public List<Dict> findSelectList(String str);
	
	/**
	 * 获取子类List
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoChildList(AjzBaseinfo ajzBaseinfo);
	/**
	 * 获取子类List
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoXfDmChildList(AjzBaseinfo ajzBaseinfo);
	/**
	 * 获取子类List
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoSpChildList(AjzBaseinfo ajzBaseinfo);
	/**
	 * 获取子类List
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoSpaqChildList(AjzBaseinfo ajzBaseinfo);
	/**
	 * 获取子类List
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoXfCzwChildList(AjzBaseinfo ajzBaseinfo);
	/**
	 * 获取子类List
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoRiGhChildList(AjzBaseinfo ajzBaseinfo);
	/**
	 * 获取子类List
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoRiGdChildList(AjzBaseinfo ajzBaseinfo);
	/*
	 * 得到子类List并且坐标不能为空
	 */
	public List<AjzBaseinfo> findChildList(AjzBaseinfo ajzBaseinfo);
	
	/**
	 * 通过负责人获取AjzBaseinfo
	 * @param investigationId
	 * @return
	 */
	public AjzBaseinfo getAjzBaseinfoByInvestigationId(String investigationId);

	List<AjzBaseinfo> findByTypeAndOffi(String var1, String var2);
}